home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
User's Choice Windows CD
/
User's Choice Windows CD (CMS Software)(1993).iso
/
utility3
/
blandmdi.zip
/
BLANDINI.C
next >
Wrap
C/C++ Source or Header
|
1991-05-03
|
5KB
|
175 lines
/*
*
* MODULE : BlandIni.c
*
* PURPOSE : Contains initialization code for BlandMDI.
*
* FUNCTIONS:
*
* InitializeApplication() - Sets up Class data structure
* and registers window class.
*
* InitializeInstance () - Does a per-instance initialization
* of BlandMDI. Creates the "frame"
* and MDI client.
*
* MakeNewChild () - Creates a new MDI child window
*
* Copyright 1991 Microsoft Corporation. All rights reserved.
*/
/*------------------------ #includes --------------------------------*/
#include "BlandMDI.h"
/*------------------------ global variables -------------------------*/
char szFrame[] = "bland frame"; // Class name for "frame" window
char szChild[] = "bland child"; // Class name for MDI window
/*--------------------- InitializeApplication -------------------------*/
/*
*
* FUNCTION : InitializeApplication ()
*
* PURPOSE : Sets up the class data structures and does a one-time
* initialization of the app by registering the window classes
*
* RETURNS : TRUE - If RegisterClass() was successful for both classes.
* FALSE - otherwise.
*
*/
BOOL FAR PASCAL InitializeApplication()
{
WNDCLASS wc;
// Register the frame class
wc.style = 0;
wc.lpfnWndProc = BlandFrameWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(hInst, IDBLANDFRAME);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = COLOR_APPWORKSPACE+1;
wc.lpszMenuName = IDBLANDMENU;
wc.lpszClassName = szFrame;
if (RegisterClass (&wc))
{
// Register the MDI child class
wc.lpfnWndProc = BlandMDIChildWndProc;
wc.hIcon = LoadIcon(hInst,IDBLANDCHILD);
wc.lpszMenuName = NULL;
wc.cbWndExtra = CBWNDEXTRA;
wc.lpszClassName = szChild;
if (RegisterClass(&wc))
return TRUE;
}
return FALSE;
}
/*---------------------- InitializeInstance --------------------------*/
/*
*
* FUNCTION : InitializeInstance ()
*
* PURPOSE : Performs a per-instance initialization of BlandMDI. It
* also creates the frame and one MDI child window.
*
* RETURNS : TRUE - If initialization was successful.
* FALSE - otherwise.
*
*/
BOOL FAR PASCAL InitializeInstance(LPSTR lpCmdLine, WORD nCmdShow)
{
extern HWND hwndMDIClient;
char sz[80], *pCmdLine;
HDC hdc;
HMENU hmenu;
// Get the base window title
LoadString (hInst, IDS_APPNAME, sz, sizeof(sz));
// Create the frame
// MDI Client window is created in frame's WM_CREATE case
hwndFrame = CreateWindow (szFrame,
sz,
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInst,
NULL);
if (hwndFrame && hwndMDIClient)
{
// Display the frame window
ShowWindow (hwndFrame, nCmdShow);
UpdateWindow (hwndFrame);
// Make the first MDI child window
MakeNewChild ("Initial Window");
return TRUE;
}
return FALSE;
}
/*---------------- MakeNewChild -----------------------------*/
/*
*
* FUNCTION : MakeNewChild (lpName)
*
* PURPOSE : Creates a new MDI child window.
*
* RETURNS : HWND - A handle to the new window.
*
*/
HWND FAR PASCAL MakeNewChild(char *pName)
{
HWND hwnd;
char sz[160];
MDICREATESTRUCT mcs;
if (!pName)
{
// pName parameter is NULL -- load the "Untitled" string
// from STRINGTABLE
LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz));
mcs.szTitle = (LPSTR)sz;
}
else
{
mcs.szTitle = (LPSTR)pName; /* Fully qualified pathname*/
}
mcs.szClass = szChild;
mcs.hOwner = hInst;
mcs.x = mcs.cx = CW_USEDEFAULT; // Use the default size for the window
mcs.y = mcs.cy = CW_USEDEFAULT;
mcs.style = styleDefault; // Set the style DWORD of the window
// to default
// tell the MDI Client to create the child
hwnd = (WORD)SendMessage (hwndMDIClient,
WM_MDICREATE,
0,
(LONG)(LPMDICREATESTRUCT)&mcs);
ShowWindow(hwnd, SW_SHOW);
return hwnd;
}